/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gob.pnp.actions;

import com.opensymphony.xwork2.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.http.*;
import org.apache.struts2.interceptor.*;
import pe.gob.pnp.despachadores.*;
/**
 *
 * @author Javero
 */
public class Usuario extends ActionSupport implements SessionAware, Serializable,ServletRequestAware {
    private static final long serialVersionUID = 1L;
    private int nusuaIdentificador;
    private String cperfNombre;
    private String cusuaUsername;
    private String cusuaClave;
    private String strNombreCompleto;
    private String strCaptcha;
    private boolean busuaActivo;
    private int npepoIdentificador;
    private String ngradDescripcion;
    private Dependencia dependencia;
    private Map<String,Object> session = new HashMap<String, Object>();
    private HttpServletRequest servletRequest;
    private int nperfIdentificador;
    @Override
    public String execute(){
        boolean logueado=false;
        try{
            logueado=UsuarioDespachador.loguearUsuario(this);
            if(logueado){
                UsuarioDespachador.obtenerDatosUsuario(this);
                session.put("usuario", this);
                return SUCCESS;
            }else{
                return ERROR;
            }
        }catch(SQLException ex){
            ex.printStackTrace();
            System.out.println("Sucedio un error al crear la sesion del usuarios"+ ex.getMessage());
            return ERROR;
        }
    }
    public String agregar(){
        return "agregado";
    }
    public String modificar(){
        try{
            UsuarioDespachador.modificarUsuario(this);
        }catch(SQLException ex){
             System.out.println("Sucedio un error al modificar el usuario"+ ex.getMessage());
            return "nomodificado";
        }
        return "modificado";
    }
    public String eliminar(){
        try{
            UsuarioDespachador.eliminarUsuario(Integer.parseInt(servletRequest.getParameter("nusuaIdentificador")));
        }catch(SQLException ex){
             System.out.println("Sucedio un error al eliminar el usuario"+ ex.getMessage());
            return "noeliminado";
        }
        return "eliminado";
    }

    /**
     * @return the nusuaIdentificador
     */
    public int getNusuaIdentificador() {
        return nusuaIdentificador;
    }

    /**
     * @param nusuaIdentificador the nusuaIdentificador to set
     */
    public void setNusuaIdentificador(int nusuaIdentificador) {
        this.nusuaIdentificador = nusuaIdentificador;
    }

    /**
     * @return the cusuaUsername
     */
    public String getCusuaUsername() {
        return cusuaUsername;
    }

    /**
     * @param cusuaUsername the cusuaUsername to set
     */
    public void setCusuaUsername(String cusuaUsername) {
        this.cusuaUsername = cusuaUsername;
    }

    /**
     * @return the cusuaClave
     */
    public String getCusuaClave() {
        return cusuaClave;
    }

    /**
     * @param cusuaClave the cusuaClave to set
     */
    public void setCusuaClave(String cusuaClave) {
        this.cusuaClave = cusuaClave;
    }

    /**
     * @return the strNombreCompleto
     */
    public String getStrNombreCompleto() {
        return strNombreCompleto;
    }

    /**
     * @param strNombreCompleto the strNombreCompleto to set
     */
    public void setStrNombreCompleto(String strNombreCompleto) {
        this.strNombreCompleto = strNombreCompleto;
    }

    /**
     * @return the strCaptcha
     */
    public String getStrCaptcha() {
        return strCaptcha;
    }

    /**
     * @param strCaptcha the strCaptcha to set
     */
    public void setStrCaptcha(String strCaptcha) {
        this.strCaptcha = strCaptcha;
    }

    /**
     * @return the session
     */
    public Map<String, Object> getSession() {
        return session;
    }

    /**
     * @param session the session to set
     */
    public void setSession(Map<String, Object> session) {
        this.session = session;
    }

    /**
     * @return the busuafActivo
     */
    public boolean isBusuaActivo() {
        return busuaActivo;
    }

    /**
     * @param busuafActivo the busuafActivo to set
     */
    public void setBusuaActivo(boolean busuaActivo) {
        this.busuaActivo = busuaActivo;
    }

    /**
     * @return the npepoIdentificador
     */
    public int getNpepoIdentificador() {
        return npepoIdentificador;
    }

    /**
     * @param npepoIdentificador the npepoIdentificador to set
     */
    public void setNpepoIdentificador(int npepoIdentificador) {
        this.npepoIdentificador = npepoIdentificador;
    }

    /**
     * @param servletRequest the servletRequest to set
     */
    public void setServletRequest(HttpServletRequest servletRequest) {
        this.servletRequest = servletRequest;
    }

    /**
     * @return the dependencia
     */
    public Dependencia getDependencia() {
        return dependencia;
    }

    /**
     * @param dependencia the dependencia to set
     */
    public void setDependencia(Dependencia dependencia) {
        this.dependencia = dependencia;
    }

    /**
     * @return the nperfIdentificador
     */
    public int getNperfIdentificador() {
        return nperfIdentificador;
    }

    /**
     * @param nperfIdentificador the nperfIdentificador to set
     */
    public void setNperfIdentificador(int nperfIdentificador) {
        this.nperfIdentificador = nperfIdentificador;
    }

    /**
     * @return the nperfNombre
     */
    public String getCperfNombre() {
        return cperfNombre;
    }

    /**
     * @param nperfNombre the nperfNombre to set
     */
    public void setCperfNombre(String cperfNombre) {
        this.cperfNombre = cperfNombre;
    }

    /**
     * @return the ngradDescripcion
     */
    public String getNgradDescripcion() {
        return ngradDescripcion;
    }

    /**
     * @param ngradDescripcion the ngradDescripcion to set
     */
    public void setNgradDescripcion(String ngradDescripcion) {
        this.ngradDescripcion = ngradDescripcion;
    }
}
